package atomic.counter;

/**
 * ---------内置锁策略-------
 *
 * @author <a href='https://gitee.com/hzf2281'>codefish</a>
 * @version 1.0.0
 * @since 2022/08/21 下午 07:11
 */
public class SynchronizedCounter implements Counter {
    // volatile修饰，使得最新的num值对线程可见
    volatile int num = 0;

    //写操作用synchronized机制来保护自增操作的原子性
    @Override
    public synchronized void increment() {
        num++;
    }

    @Override
    public long getCount() {
        return num;
    }
}